package com.mapper;

import com.pojo.ConsumerProductRelationshipRel;
import com.pojo.view.ShopCartView;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 购物车映射器
 *
 * @author 蔡文欣
 * @date 2023/07/02 19:26:27
 */
@Mapper
public interface ShopCartMapper {
    /**
     * 通过消费者电话获取商品
     *
     * @return {@link List}<{@link ShopCartView}>
     */
    List<ShopCartView> byConsumerPhoneGetShops(String consumerPhone);

    /**
     * 添加购物车
     *
     * @param component 需要的信息
     * @return {@link Integer}
     */
    Integer addShopCart(ConsumerProductRelationshipRel component);

    /**
     * 移除购物车
     *
     * @param id id
     * @return {@link Integer}
     */
    Integer removeShopCart(@Param("id") Long id);

    /**
     * 清空购物车
     *
     * @param consumerPhone 消费者电话
     * @return {@link Integer}
     */
    Integer emptyShopCart(@Param("consumerPhone") String consumerPhone);

    /**
     * 购物车内是否有重复的数据
     *
     * @param consumerPhone 消费者电话
     * @param productId     产品标识
     * @param sizeId        尺寸标识
     * @return {@link Integer}
     */
    Integer isDistinct(@Param("consumerPhone") String consumerPhone,
                       @Param("productId") Long productId,
                       @Param("sizeId") Long sizeId);

    /**
     * 更新购物车
     *
     * @param data 数据
     * @return {@link Integer}
     */
    Integer updateShopCart(ConsumerProductRelationshipRel data);
  /**
   * 更新大小
   *
   * @param data 数据
   * @return {@link Integer}
   */
  @Update("update consumer_product_relationship_rel set size_id=#{sizeId} where id=#{id} ")
    Integer updateSize(ConsumerProductRelationshipRel data);
}
